{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2019162542\\t/front-api/bill/create\\t8\\t1057.31...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>162644\\t/front-api/bill/create\\t5\\t749.12\\t103...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>162742\\t/front-api/bill/create\\t5\\t845.84\\t136...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>162808\\t/front-api/bill/create\\t9\\t1305.52\\t90...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>162943\\t/front-api/bill/create\\t3\\t568.89\\t138...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                                   0\n",
       "0  2019162542\\t/front-api/bill/create\\t8\\t1057.31...\n",
       "1  162644\\t/front-api/bill/create\\t5\\t749.12\\t103...\n",
       "2  162742\\t/front-api/bill/create\\t5\\t845.84\\t136...\n",
       "3  162808\\t/front-api/bill/create\\t9\\t1305.52\\t90...\n",
       "4  162943\\t/front-api/bill/create\\t3\\t568.89\\t138..."
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = pd.read_csv(r'C:\\Users\\Administrator\\Desktop\\log.txt',header = None)\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>4</th>\n",
       "      <th>5</th>\n",
       "      <th>6</th>\n",
       "      <th>7</th>\n",
       "      <th>8</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2019162542</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:00:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>162644</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:01:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>162742</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>5</td>\n",
       "      <td>845.84</td>\n",
       "      <td>136.31</td>\n",
       "      <td>225.73</td>\n",
       "      <td>169.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:02:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>162808</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>9</td>\n",
       "      <td>1305.52</td>\n",
       "      <td>90.12</td>\n",
       "      <td>196.61</td>\n",
       "      <td>145.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:03:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>162943</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>3</td>\n",
       "      <td>568.89</td>\n",
       "      <td>138.45</td>\n",
       "      <td>232.02</td>\n",
       "      <td>189.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:04:07</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            0                       1  2        3       4       5      6   7  \\\n",
       "0  2019162542  /front-api/bill/create  8  1057.31   88.75  177.72  132.0  60   \n",
       "1      162644  /front-api/bill/create  5   749.12  103.79  240.38  149.0  60   \n",
       "2      162742  /front-api/bill/create  5   845.84  136.31  225.73  169.0  60   \n",
       "3      162808  /front-api/bill/create  9  1305.52   90.12  196.61  145.0  60   \n",
       "4      162943  /front-api/bill/create  3   568.89  138.45  232.02  189.0  60   \n",
       "\n",
       "                     8  \n",
       "0  2018-11-01 00:00:07  \n",
       "1  2018-11-01 00:01:07  \n",
       "2  2018-11-01 00:02:07  \n",
       "3  2018-11-01 00:03:07  \n",
       "4  2018-11-01 00:04:07  "
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = pd.read_csv(r'C:\\Users\\Administrator\\Desktop\\log.txt',header = None,sep = '\\t')\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "df.columns = ['id','api','count','res_time_sun','res_time_min','res_time_max','res_time_avg','interval','created_at']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>api</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sun</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>interval</th>\n",
       "      <th>created_at</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2019162542</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:00:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>162644</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:01:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>162742</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>5</td>\n",
       "      <td>845.84</td>\n",
       "      <td>136.31</td>\n",
       "      <td>225.73</td>\n",
       "      <td>169.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:02:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>162808</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>9</td>\n",
       "      <td>1305.52</td>\n",
       "      <td>90.12</td>\n",
       "      <td>196.61</td>\n",
       "      <td>145.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:03:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>162943</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>3</td>\n",
       "      <td>568.89</td>\n",
       "      <td>138.45</td>\n",
       "      <td>232.02</td>\n",
       "      <td>189.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:04:07</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           id                     api  count  res_time_sun  res_time_min  \\\n",
       "0  2019162542  /front-api/bill/create      8       1057.31         88.75   \n",
       "1      162644  /front-api/bill/create      5        749.12        103.79   \n",
       "2      162742  /front-api/bill/create      5        845.84        136.31   \n",
       "3      162808  /front-api/bill/create      9       1305.52         90.12   \n",
       "4      162943  /front-api/bill/create      3        568.89        138.45   \n",
       "\n",
       "   res_time_max  res_time_avg  interval           created_at  \n",
       "0        177.72         132.0        60  2018-11-01 00:00:07  \n",
       "1        240.38         149.0        60  2018-11-01 00:01:07  \n",
       "2        225.73         169.0        60  2018-11-01 00:02:07  \n",
       "3        196.61         145.0        60  2018-11-01 00:03:07  \n",
       "4        232.02         189.0        60  2018-11-01 00:04:07  "
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>api</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sun</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>interval</th>\n",
       "      <th>created_at</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>55707</th>\n",
       "      <td>4554880</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>11</td>\n",
       "      <td>1698.43</td>\n",
       "      <td>80.61</td>\n",
       "      <td>286.45</td>\n",
       "      <td>154.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-01-04 21:28:03</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>42964</th>\n",
       "      <td>3697154</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>2</td>\n",
       "      <td>339.12</td>\n",
       "      <td>165.02</td>\n",
       "      <td>174.10</td>\n",
       "      <td>169.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-12-21 00:19:39</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27881</th>\n",
       "      <td>2658207</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>12</td>\n",
       "      <td>2239.09</td>\n",
       "      <td>113.12</td>\n",
       "      <td>247.03</td>\n",
       "      <td>186.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-12-03 14:50:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>141667</th>\n",
       "      <td>10515325</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>2</td>\n",
       "      <td>274.28</td>\n",
       "      <td>116.15</td>\n",
       "      <td>158.13</td>\n",
       "      <td>137.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-04-18 00:23:34</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>173500</th>\n",
       "      <td>12975069</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>13</td>\n",
       "      <td>1881.21</td>\n",
       "      <td>84.49</td>\n",
       "      <td>329.10</td>\n",
       "      <td>144.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2019-05-24 12:23:15</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              id                     api  count  res_time_sun  res_time_min  \\\n",
       "55707    4554880  /front-api/bill/create     11       1698.43         80.61   \n",
       "42964    3697154  /front-api/bill/create      2        339.12        165.02   \n",
       "27881    2658207  /front-api/bill/create     12       2239.09        113.12   \n",
       "141667  10515325  /front-api/bill/create      2        274.28        116.15   \n",
       "173500  12975069  /front-api/bill/create     13       1881.21         84.49   \n",
       "\n",
       "        res_time_max  res_time_avg  interval           created_at  \n",
       "55707         286.45         154.0        60  2019-01-04 21:28:03  \n",
       "42964         174.10         169.0        60  2018-12-21 00:19:39  \n",
       "27881         247.03         186.0        60  2018-12-03 14:50:13  \n",
       "141667        158.13         137.0        60  2019-04-18 00:23:34  \n",
       "173500        329.10         144.0        60  2019-05-24 12:23:15  "
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 18万条数据，数据太多，去浏览看数据不现实，用sample方法，随机抽取其中几条数据，并多次执行，查看数据大概，有无异常值。\n",
    "df.sample(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(179496, 9)"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.shape  # 有多少条数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "id                int64\n",
       "api              object\n",
       "count             int64\n",
       "res_time_sun    float64\n",
       "res_time_min    float64\n",
       "res_time_max    float64\n",
       "res_time_avg    float64\n",
       "interval          int64\n",
       "created_at       object\n",
       "dtype: object"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.dtypes # 查看每一列的数据类型。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 179496 entries, 0 to 179495\n",
      "Data columns (total 9 columns):\n",
      " #   Column        Non-Null Count   Dtype  \n",
      "---  ------        --------------   -----  \n",
      " 0   id            179496 non-null  int64  \n",
      " 1   api           179496 non-null  object \n",
      " 2   count         179496 non-null  int64  \n",
      " 3   res_time_sun  179496 non-null  float64\n",
      " 4   res_time_min  179496 non-null  float64\n",
      " 5   res_time_max  179496 non-null  float64\n",
      " 6   res_time_avg  179496 non-null  float64\n",
      " 7   interval      179496 non-null  int64  \n",
      " 8   created_at    179496 non-null  object \n",
      "dtypes: float64(4), int64(3), object(2)\n",
      "memory usage: 12.3+ MB\n"
     ]
    }
   ],
   "source": [
    "df.info()  # 查看内存占用情况。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "count                     179496\n",
       "unique                         1\n",
       "top       /front-api/bill/create\n",
       "freq                      179496\n",
       "Name: api, dtype: object"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 从以上操作可以看出，api和interval这两列数据基本一样。  查看有无异常值。\n",
    "df['api'].describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sun</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>interval</th>\n",
       "      <th>created_at</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2019162542</td>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:00:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>162644</td>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:01:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>162742</td>\n",
       "      <td>5</td>\n",
       "      <td>845.84</td>\n",
       "      <td>136.31</td>\n",
       "      <td>225.73</td>\n",
       "      <td>169.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:02:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>162808</td>\n",
       "      <td>9</td>\n",
       "      <td>1305.52</td>\n",
       "      <td>90.12</td>\n",
       "      <td>196.61</td>\n",
       "      <td>145.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:03:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>162943</td>\n",
       "      <td>3</td>\n",
       "      <td>568.89</td>\n",
       "      <td>138.45</td>\n",
       "      <td>232.02</td>\n",
       "      <td>189.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:04:07</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           id  count  res_time_sun  res_time_min  res_time_max  res_time_avg  \\\n",
       "0  2019162542      8       1057.31         88.75        177.72         132.0   \n",
       "1      162644      5        749.12        103.79        240.38         149.0   \n",
       "2      162742      5        845.84        136.31        225.73         169.0   \n",
       "3      162808      9       1305.52         90.12        196.61         145.0   \n",
       "4      162943      3        568.89        138.45        232.02         189.0   \n",
       "\n",
       "   interval           created_at  \n",
       "0        60  2018-11-01 00:00:07  \n",
       "1        60  2018-11-01 00:01:07  \n",
       "2        60  2018-11-01 00:02:07  \n",
       "3        60  2018-11-01 00:03:07  \n",
       "4        60  2018-11-01 00:04:07  "
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#  用describe方法得出，api这一列只有一个异常值，问题不大，可以删除api这一列，进行数据优化。\n",
    "df = df.drop('api',axis = 1)\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "count    179496.0\n",
       "mean         60.0\n",
       "std           0.0\n",
       "min          60.0\n",
       "25%          60.0\n",
       "50%          60.0\n",
       "75%          60.0\n",
       "max          60.0\n",
       "Name: interval, dtype: float64"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['interval'].describe()# 用此方法也可以看出，标准差为0，说明此列数据，内容一样，没有异常值。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([60], dtype=int64)"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['interval'].unique()  # 用此方法，也可以看出，此列只有一个值就是60，没有异常值。可以删除。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "df = df.drop('interval',axis = 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 179496 entries, 0 to 179495\n",
      "Data columns (total 7 columns):\n",
      " #   Column        Non-Null Count   Dtype  \n",
      "---  ------        --------------   -----  \n",
      " 0   id            179496 non-null  int64  \n",
      " 1   count         179496 non-null  int64  \n",
      " 2   res_time_sun  179496 non-null  float64\n",
      " 3   res_time_min  179496 non-null  float64\n",
      " 4   res_time_max  179496 non-null  float64\n",
      " 5   res_time_avg  179496 non-null  float64\n",
      " 6   created_at    179496 non-null  object \n",
      "dtypes: float64(4), int64(2), object(1)\n",
      "memory usage: 9.6+ MB\n"
     ]
    }
   ],
   "source": [
    "df.info()  # 可以看出删除api和interval这列后，内存减少了。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "count                  179496\n",
       "unique                 179496\n",
       "top       2019-01-26 20:50:42\n",
       "freq                        1\n",
       "Name: created_at, dtype: object"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 我们要求以时间为索引，这时查看时间这一列，有无重复值，有无异常值。\n",
    "df['created_at'].describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sun</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>created_at</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Empty DataFrame\n",
       "Columns: [id, count, res_time_sun, res_time_min, res_time_max, res_time_avg, created_at]\n",
       "Index: []"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 要以时间取出对应的数据，进行查看。\n",
    "df[df.created_at == '2019-01-10']  #可以看出没有数据显示，是因为时间这一列是字符串类型，需要转变为时间类型。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sun</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>created_at</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>60121</th>\n",
       "      <td>4848841</td>\n",
       "      <td>5</td>\n",
       "      <td>638.26</td>\n",
       "      <td>63.66</td>\n",
       "      <td>187.72</td>\n",
       "      <td>127.0</td>\n",
       "      <td>2019-01-10 00:00:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>60122</th>\n",
       "      <td>4848912</td>\n",
       "      <td>3</td>\n",
       "      <td>627.08</td>\n",
       "      <td>166.84</td>\n",
       "      <td>285.57</td>\n",
       "      <td>209.0</td>\n",
       "      <td>2019-01-10 00:01:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>60123</th>\n",
       "      <td>4848974</td>\n",
       "      <td>4</td>\n",
       "      <td>605.80</td>\n",
       "      <td>88.75</td>\n",
       "      <td>276.03</td>\n",
       "      <td>151.0</td>\n",
       "      <td>2019-01-10 00:02:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>60124</th>\n",
       "      <td>4848985</td>\n",
       "      <td>1</td>\n",
       "      <td>161.00</td>\n",
       "      <td>161.00</td>\n",
       "      <td>161.00</td>\n",
       "      <td>161.0</td>\n",
       "      <td>2019-01-10 00:03:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>60125</th>\n",
       "      <td>4849096</td>\n",
       "      <td>5</td>\n",
       "      <td>716.61</td>\n",
       "      <td>87.26</td>\n",
       "      <td>208.73</td>\n",
       "      <td>143.0</td>\n",
       "      <td>2019-01-10 00:05:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>60963</th>\n",
       "      <td>4903584</td>\n",
       "      <td>5</td>\n",
       "      <td>699.77</td>\n",
       "      <td>75.25</td>\n",
       "      <td>265.86</td>\n",
       "      <td>139.0</td>\n",
       "      <td>2019-01-10 23:55:14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>60964</th>\n",
       "      <td>4903635</td>\n",
       "      <td>2</td>\n",
       "      <td>152.74</td>\n",
       "      <td>68.67</td>\n",
       "      <td>84.07</td>\n",
       "      <td>76.0</td>\n",
       "      <td>2019-01-10 23:56:14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>60965</th>\n",
       "      <td>4903685</td>\n",
       "      <td>6</td>\n",
       "      <td>735.31</td>\n",
       "      <td>77.35</td>\n",
       "      <td>155.14</td>\n",
       "      <td>122.0</td>\n",
       "      <td>2019-01-10 23:57:14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>60966</th>\n",
       "      <td>4903748</td>\n",
       "      <td>3</td>\n",
       "      <td>507.04</td>\n",
       "      <td>82.27</td>\n",
       "      <td>219.07</td>\n",
       "      <td>169.0</td>\n",
       "      <td>2019-01-10 23:58:14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>60967</th>\n",
       "      <td>4903816</td>\n",
       "      <td>9</td>\n",
       "      <td>1108.53</td>\n",
       "      <td>76.62</td>\n",
       "      <td>161.26</td>\n",
       "      <td>123.0</td>\n",
       "      <td>2019-01-10 23:59:14</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>847 rows × 7 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "            id  count  res_time_sun  res_time_min  res_time_max  res_time_avg  \\\n",
       "60121  4848841      5        638.26         63.66        187.72         127.0   \n",
       "60122  4848912      3        627.08        166.84        285.57         209.0   \n",
       "60123  4848974      4        605.80         88.75        276.03         151.0   \n",
       "60124  4848985      1        161.00        161.00        161.00         161.0   \n",
       "60125  4849096      5        716.61         87.26        208.73         143.0   \n",
       "...        ...    ...           ...           ...           ...           ...   \n",
       "60963  4903584      5        699.77         75.25        265.86         139.0   \n",
       "60964  4903635      2        152.74         68.67         84.07          76.0   \n",
       "60965  4903685      6        735.31         77.35        155.14         122.0   \n",
       "60966  4903748      3        507.04         82.27        219.07         169.0   \n",
       "60967  4903816      9       1108.53         76.62        161.26         123.0   \n",
       "\n",
       "                created_at  \n",
       "60121  2019-01-10 00:00:13  \n",
       "60122  2019-01-10 00:01:13  \n",
       "60123  2019-01-10 00:02:13  \n",
       "60124  2019-01-10 00:03:13  \n",
       "60125  2019-01-10 00:05:13  \n",
       "...                    ...  \n",
       "60963  2019-01-10 23:55:14  \n",
       "60964  2019-01-10 23:56:14  \n",
       "60965  2019-01-10 23:57:14  \n",
       "60966  2019-01-10 23:58:14  \n",
       "60967  2019-01-10 23:59:14  \n",
       "\n",
       "[847 rows x 7 columns]"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[(df.created_at >= '2019-01-10') & (df.created_at < '2019-01-11')] # 这样可以取出数据，但是相对来讲很麻烦。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "RangeIndex(start=0, stop=179496, step=1)"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 更改索引为时间索引。\n",
    "df.index"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sun</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>created_at</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>created_at</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:00:07</th>\n",
       "      <td>2019162542</td>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>2018-11-01 00:00:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:01:07</th>\n",
       "      <td>162644</td>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>2018-11-01 00:01:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:02:07</th>\n",
       "      <td>162742</td>\n",
       "      <td>5</td>\n",
       "      <td>845.84</td>\n",
       "      <td>136.31</td>\n",
       "      <td>225.73</td>\n",
       "      <td>169.0</td>\n",
       "      <td>2018-11-01 00:02:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:03:07</th>\n",
       "      <td>162808</td>\n",
       "      <td>9</td>\n",
       "      <td>1305.52</td>\n",
       "      <td>90.12</td>\n",
       "      <td>196.61</td>\n",
       "      <td>145.0</td>\n",
       "      <td>2018-11-01 00:03:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:04:07</th>\n",
       "      <td>162943</td>\n",
       "      <td>3</td>\n",
       "      <td>568.89</td>\n",
       "      <td>138.45</td>\n",
       "      <td>232.02</td>\n",
       "      <td>189.0</td>\n",
       "      <td>2018-11-01 00:04:07</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                             id  count  res_time_sun  res_time_min  \\\n",
       "created_at                                                           \n",
       "2018-11-01 00:00:07  2019162542      8       1057.31         88.75   \n",
       "2018-11-01 00:01:07      162644      5        749.12        103.79   \n",
       "2018-11-01 00:02:07      162742      5        845.84        136.31   \n",
       "2018-11-01 00:03:07      162808      9       1305.52         90.12   \n",
       "2018-11-01 00:04:07      162943      3        568.89        138.45   \n",
       "\n",
       "                     res_time_max  res_time_avg           created_at  \n",
       "created_at                                                            \n",
       "2018-11-01 00:00:07        177.72         132.0  2018-11-01 00:00:07  \n",
       "2018-11-01 00:01:07        240.38         149.0  2018-11-01 00:01:07  \n",
       "2018-11-01 00:02:07        225.73         169.0  2018-11-01 00:02:07  \n",
       "2018-11-01 00:03:07        196.61         145.0  2018-11-01 00:03:07  \n",
       "2018-11-01 00:04:07        232.02         189.0  2018-11-01 00:04:07  "
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.index = df['created_at']\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "#现在已经将时间列替换为索引，但是用df【‘2019-01-10’】仍然查询不出数据，因为时间索引类型是字符串类型，并不是时间类型。\n",
    "df.index = pd.to_datetime(df.created_at)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "DatetimeIndex(['2018-11-01 00:00:07', '2018-11-01 00:01:07',\n",
       "               '2018-11-01 00:02:07', '2018-11-01 00:03:07',\n",
       "               '2018-11-01 00:04:07', '2018-11-01 00:05:07',\n",
       "               '2018-11-01 00:06:07', '2018-11-01 00:07:07',\n",
       "               '2018-11-01 00:08:07', '2018-11-01 00:09:07',\n",
       "               ...\n",
       "               '2019-05-30 23:01:21', '2019-05-30 23:02:21',\n",
       "               '2019-05-30 23:03:21', '2019-05-30 23:04:21',\n",
       "               '2019-05-30 23:05:21', '2019-05-30 23:06:21',\n",
       "               '2019-05-30 23:07:21', '2019-05-30 23:08:21',\n",
       "               '2019-05-30 23:09:21', '2019-05-30 23:10:21'],\n",
       "              dtype='datetime64[ns]', name='created_at', length=179496, freq=None)"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.index"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sun</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>created_at</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>created_at</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2019-01-10 00:00:13</th>\n",
       "      <td>4848841</td>\n",
       "      <td>5</td>\n",
       "      <td>638.26</td>\n",
       "      <td>63.66</td>\n",
       "      <td>187.72</td>\n",
       "      <td>127.0</td>\n",
       "      <td>2019-01-10 00:00:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-01-10 00:01:13</th>\n",
       "      <td>4848912</td>\n",
       "      <td>3</td>\n",
       "      <td>627.08</td>\n",
       "      <td>166.84</td>\n",
       "      <td>285.57</td>\n",
       "      <td>209.0</td>\n",
       "      <td>2019-01-10 00:01:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-01-10 00:02:13</th>\n",
       "      <td>4848974</td>\n",
       "      <td>4</td>\n",
       "      <td>605.80</td>\n",
       "      <td>88.75</td>\n",
       "      <td>276.03</td>\n",
       "      <td>151.0</td>\n",
       "      <td>2019-01-10 00:02:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-01-10 00:03:13</th>\n",
       "      <td>4848985</td>\n",
       "      <td>1</td>\n",
       "      <td>161.00</td>\n",
       "      <td>161.00</td>\n",
       "      <td>161.00</td>\n",
       "      <td>161.0</td>\n",
       "      <td>2019-01-10 00:03:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-01-10 00:05:13</th>\n",
       "      <td>4849096</td>\n",
       "      <td>5</td>\n",
       "      <td>716.61</td>\n",
       "      <td>87.26</td>\n",
       "      <td>208.73</td>\n",
       "      <td>143.0</td>\n",
       "      <td>2019-01-10 00:05:13</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                          id  count  res_time_sun  res_time_min  res_time_max  \\\n",
       "created_at                                                                      \n",
       "2019-01-10 00:00:13  4848841      5        638.26         63.66        187.72   \n",
       "2019-01-10 00:01:13  4848912      3        627.08        166.84        285.57   \n",
       "2019-01-10 00:02:13  4848974      4        605.80         88.75        276.03   \n",
       "2019-01-10 00:03:13  4848985      1        161.00        161.00        161.00   \n",
       "2019-01-10 00:05:13  4849096      5        716.61         87.26        208.73   \n",
       "\n",
       "                     res_time_avg           created_at  \n",
       "created_at                                              \n",
       "2019-01-10 00:00:13         127.0  2019-01-10 00:00:13  \n",
       "2019-01-10 00:01:13         209.0  2019-01-10 00:01:13  \n",
       "2019-01-10 00:02:13         151.0  2019-01-10 00:02:13  \n",
       "2019-01-10 00:03:13         161.0  2019-01-10 00:03:13  \n",
       "2019-01-10 00:05:13         143.0  2019-01-10 00:05:13  "
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['2019-01-10'].head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sun</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>created_at</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>created_at</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:00:07</th>\n",
       "      <td>2019162542</td>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>2018-11-01 00:00:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:01:07</th>\n",
       "      <td>162644</td>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>2018-11-01 00:01:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:02:07</th>\n",
       "      <td>162742</td>\n",
       "      <td>5</td>\n",
       "      <td>845.84</td>\n",
       "      <td>136.31</td>\n",
       "      <td>225.73</td>\n",
       "      <td>169.0</td>\n",
       "      <td>2018-11-01 00:02:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:03:07</th>\n",
       "      <td>162808</td>\n",
       "      <td>9</td>\n",
       "      <td>1305.52</td>\n",
       "      <td>90.12</td>\n",
       "      <td>196.61</td>\n",
       "      <td>145.0</td>\n",
       "      <td>2018-11-01 00:03:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:04:07</th>\n",
       "      <td>162943</td>\n",
       "      <td>3</td>\n",
       "      <td>568.89</td>\n",
       "      <td>138.45</td>\n",
       "      <td>232.02</td>\n",
       "      <td>189.0</td>\n",
       "      <td>2018-11-01 00:04:07</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                             id  count  res_time_sun  res_time_min  \\\n",
       "created_at                                                           \n",
       "2018-11-01 00:00:07  2019162542      8       1057.31         88.75   \n",
       "2018-11-01 00:01:07      162644      5        749.12        103.79   \n",
       "2018-11-01 00:02:07      162742      5        845.84        136.31   \n",
       "2018-11-01 00:03:07      162808      9       1305.52         90.12   \n",
       "2018-11-01 00:04:07      162943      3        568.89        138.45   \n",
       "\n",
       "                     res_time_max  res_time_avg           created_at  \n",
       "created_at                                                            \n",
       "2018-11-01 00:00:07        177.72         132.0  2018-11-01 00:00:07  \n",
       "2018-11-01 00:01:07        240.38         149.0  2018-11-01 00:01:07  \n",
       "2018-11-01 00:02:07        225.73         169.0  2018-11-01 00:02:07  \n",
       "2018-11-01 00:03:07        196.61         145.0  2018-11-01 00:03:07  \n",
       "2018-11-01 00:04:07        232.02         189.0  2018-11-01 00:04:07  "
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 我们以时间作为索引，id就没有什么用了。可以删除。df = df.drop('id',axis = 1)\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "DatetimeIndex: 179496 entries, 2018-11-01 00:00:07 to 2019-05-30 23:10:21\n",
      "Data columns (total 7 columns):\n",
      " #   Column        Non-Null Count   Dtype  \n",
      "---  ------        --------------   -----  \n",
      " 0   id            179496 non-null  int64  \n",
      " 1   count         179496 non-null  int64  \n",
      " 2   res_time_sun  179496 non-null  float64\n",
      " 3   res_time_min  179496 non-null  float64\n",
      " 4   res_time_max  179496 non-null  float64\n",
      " 5   res_time_avg  179496 non-null  float64\n",
      " 6   created_at    179496 non-null  object \n",
      "dtypes: float64(4), int64(2), object(1)\n",
      "memory usage: 11.0+ MB\n"
     ]
    }
   ],
   "source": [
    "df.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sun</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>1.794960e+05</td>\n",
       "      <td>179496.000000</td>\n",
       "      <td>179496.000000</td>\n",
       "      <td>179496.000000</td>\n",
       "      <td>179496.000000</td>\n",
       "      <td>179496.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>6.877739e+06</td>\n",
       "      <td>7.175909</td>\n",
       "      <td>1393.177832</td>\n",
       "      <td>108.419626</td>\n",
       "      <td>359.880374</td>\n",
       "      <td>187.812208</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>6.012494e+06</td>\n",
       "      <td>4.325160</td>\n",
       "      <td>1499.486073</td>\n",
       "      <td>79.640693</td>\n",
       "      <td>638.919827</td>\n",
       "      <td>224.464813</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>1.626440e+05</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>36.550000</td>\n",
       "      <td>3.210000</td>\n",
       "      <td>36.550000</td>\n",
       "      <td>36.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>3.825233e+06</td>\n",
       "      <td>4.000000</td>\n",
       "      <td>607.707500</td>\n",
       "      <td>83.410000</td>\n",
       "      <td>198.280000</td>\n",
       "      <td>144.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>6.811510e+06</td>\n",
       "      <td>7.000000</td>\n",
       "      <td>1154.905000</td>\n",
       "      <td>97.120000</td>\n",
       "      <td>256.090000</td>\n",
       "      <td>167.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>9.981455e+06</td>\n",
       "      <td>10.000000</td>\n",
       "      <td>1834.117500</td>\n",
       "      <td>116.990000</td>\n",
       "      <td>374.410000</td>\n",
       "      <td>202.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>2.019163e+09</td>\n",
       "      <td>31.000000</td>\n",
       "      <td>142650.550000</td>\n",
       "      <td>18896.640000</td>\n",
       "      <td>142468.270000</td>\n",
       "      <td>71325.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                 id          count   res_time_sun   res_time_min  \\\n",
       "count  1.794960e+05  179496.000000  179496.000000  179496.000000   \n",
       "mean   6.877739e+06       7.175909    1393.177832     108.419626   \n",
       "std    6.012494e+06       4.325160    1499.486073      79.640693   \n",
       "min    1.626440e+05       1.000000      36.550000       3.210000   \n",
       "25%    3.825233e+06       4.000000     607.707500      83.410000   \n",
       "50%    6.811510e+06       7.000000    1154.905000      97.120000   \n",
       "75%    9.981455e+06      10.000000    1834.117500     116.990000   \n",
       "max    2.019163e+09      31.000000  142650.550000   18896.640000   \n",
       "\n",
       "        res_time_max   res_time_avg  \n",
       "count  179496.000000  179496.000000  \n",
       "mean      359.880374     187.812208  \n",
       "std       638.919827     224.464813  \n",
       "min        36.550000      36.000000  \n",
       "25%       198.280000     144.000000  \n",
       "50%       256.090000     167.000000  \n",
       "75%       374.410000     202.000000  \n",
       "max    142468.270000   71325.000000  "
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "#  从优化的数据中，可以看出，avg 的 平均值为187 对于pc端来说，偏高，max 中的 50%与75%都偏高，但是并没有特别高，考虑是服务器访问人数较多，\n",
    "# 并没有黑客攻击，表明服务器配置需要 更新。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 以上结论得出，服务器配置低。我们进一步画图分析，验证结论。\n",
    "df['count'].hist()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#表示接口调用的分布情况，大部分都在10此以内，反映出每分钟调用的次数分布情况。\n",
    "df['count'].hist(rwidth = 0.5,bins = 30)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 随机切出一天的数据，绘制一天时段接口调用情况。\n",
    "df['2019-05-01']['count'].plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 凌晨时间无人访问，下午2-3点第一个访问高峰，晚上8点之间，第二个访问高峰。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [],
   "source": [
    "#用count重采样，用一个小时采样，没那么多数据点了，图像比较平滑。\n",
    "df2 = df['2019-05-01']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>count</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>created_at</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:00:00</th>\n",
       "      <td>4.428571</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 01:00:00</th>\n",
       "      <td>2.272727</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 02:00:00</th>\n",
       "      <td>1.833333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 03:00:00</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 04:00:00</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 05:00:00</th>\n",
       "      <td>2.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 06:00:00</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 07:00:00</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 08:00:00</th>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 09:00:00</th>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 10:00:00</th>\n",
       "      <td>1.400000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 11:00:00</th>\n",
       "      <td>1.604651</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 12:00:00</th>\n",
       "      <td>3.298246</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 13:00:00</th>\n",
       "      <td>6.866667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 14:00:00</th>\n",
       "      <td>10.483333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 15:00:00</th>\n",
       "      <td>12.333333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 16:00:00</th>\n",
       "      <td>9.916667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 17:00:00</th>\n",
       "      <td>7.666667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 18:00:00</th>\n",
       "      <td>6.783333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 19:00:00</th>\n",
       "      <td>9.850000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 20:00:00</th>\n",
       "      <td>11.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 21:00:00</th>\n",
       "      <td>10.416667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 22:00:00</th>\n",
       "      <td>8.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 23:00:00</th>\n",
       "      <td>5.083333</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                         count\n",
       "created_at                    \n",
       "2019-05-01 00:00:00   4.428571\n",
       "2019-05-01 01:00:00   2.272727\n",
       "2019-05-01 02:00:00   1.833333\n",
       "2019-05-01 03:00:00        NaN\n",
       "2019-05-01 04:00:00        NaN\n",
       "2019-05-01 05:00:00   2.000000\n",
       "2019-05-01 06:00:00        NaN\n",
       "2019-05-01 07:00:00        NaN\n",
       "2019-05-01 08:00:00        NaN\n",
       "2019-05-01 09:00:00   1.000000\n",
       "2019-05-01 10:00:00   1.400000\n",
       "2019-05-01 11:00:00   1.604651\n",
       "2019-05-01 12:00:00   3.298246\n",
       "2019-05-01 13:00:00   6.866667\n",
       "2019-05-01 14:00:00  10.483333\n",
       "2019-05-01 15:00:00  12.333333\n",
       "2019-05-01 16:00:00   9.916667\n",
       "2019-05-01 17:00:00   7.666667\n",
       "2019-05-01 18:00:00   6.783333\n",
       "2019-05-01 19:00:00   9.850000\n",
       "2019-05-01 20:00:00  11.000000\n",
       "2019-05-01 21:00:00  10.416667\n",
       "2019-05-01 22:00:00   8.000000\n",
       "2019-05-01 23:00:00   5.083333"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df2 = df2[['count']].resample('1H').mean()\n",
    "df2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXAAAAETCAYAAAAveV3LAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAAtMUlEQVR4nO3dd3yc1Zno8d8zGhWrS5ZkVTdsyzbGcpFtwE2UJDSbFtoSQhIISzYJJDfJbtrdTW5ubkjZkJCyLISSDcQJMRCwg2kGXChGknuXsCU3yapWs9XP/WNGRhiV0bT3ndHz/Xz00eidtzwej545Ou85zxFjDEoppUKPw+oAlFJKeUcTuFJKhShN4EopFaI0gSulVIjSBK6UUiFKE7hSSoUoZzAvlpaWZiZOnBjMSyqlVMgrLS2tM8akn7s9qAl84sSJlJSUBPOSSikV8kSkcqDt2oWilFIhShO4UkqFKE3gSikVojSBK6VUiNIErpRSIUoTuFJKhShN4EopFaI0gSsVRp4tPcaSn75Ba0e31aGoINAErlSY6Ok1/Hp9Gccaz/D63pNWh6OCQBO4UmHi1T3VHGk4jdMhrNlxwupwVBAMm8BF5HERqRGR3f22/VxE9ovIThF5XkSSAxqlUmpYj246xPjUWO68eCIby2o5dbrT6pBUgHnSAn8SuOKcba8Bs4wxs4GDwHf8HJdSagRKKxvYeuQUdy2ZxPVzc+jqMby8u9rqsFSADZvAjTEbgYZztr1qjOm7S/IekBuA2JRSHnp042GSxkRyU2Eu52cnMiktjjU7tRsl3PmjD/wLwDo/nEcp5YWKujZe2VvNZy4cT2yUExFhxews3v2gnpqWdqvDUwHkUwIXke8B3cDTQ+xzj4iUiEhJbW2tL5dTSg3g8bcPE+lwcOdFE89uW1GQTa+Bl3ZWWReYCjivE7iI3AlcA9xujDGD7WeMecQYU2iMKUxP/1g9cqWUDxrbOnmm5Cgr52STkRhzdvvUcQlMz0xgjSbwsOZVAheRK4B/A1YaY077NySllKee3lJJe1cvX1w6+WPPrZyTTWllI8ca9Vc0XHkyjHAV8C6QLyLHROQu4LdAAvCaiGwXkYcDHKdS6hztXT08+U4ly6alk5+Z8LHnV8zOBmCttsLD1rBLqhljbhtg82MBiEUpNQIvbj9BXWsH9wzQ+gbIS41lTl4yL24/wb3LzwtydCoYdCamUiHIGMOjmw4xPTOBxVPGDrrfyoJs9lY1U17TGsToVLBoAlcqBL11sJaymlbuWTYZERl0v6tnZyECa3VMeFjSBK5UCHp04yHGJUZzjbufezDjEmO4cNJYXtxxgiEGi6kQpQlcqRCz+3gT73xQz+cXTyLKOfyv8IqCbA7VtrG3qjkI0alg0gSuVIj5w6ZDxEVFcNvC8R7tf+WsTJwO4UWtUBh2NIErFUJOnDrD2p1V3LJgPEljIj06JiUuiqVT01i7o0q7UcKMJnClQsiT71TQawyfXzxxRMetKMjm+KkzbD1yKiBxKWtoAlcqRLS0d7FqyxGuuiCLvNTYER37iZnjiHY6dKGHMKMJXKkQ8dfio7R0dA84bX44CTGRXDo9g7U7q+jp1W6UcKEJXKkQ0N3TyxNvV7BwUioFeclenWNFQTZ1rR1sOVTv3+CUZTSBKxUCXtpdzfFTZ7xqffe5dHoGcVEROholjGgCV8rmjDE8uvEQk9PiuGx6htfniYmM4JPnZ7JudzWd3b1+jDC0/HnLEX7w4h6a27usDsVnmsCVsrkthxvYdbyJu5ZOwuEYfNq8J1YWZNN0potNZaNzcZXiiga+//ddPPlOBVf+alPIdydpAlfK5h7deIjUuChunOf70rOLp6SRHBs5KkejNJ3u4v5V28hLjeVPdy3EGSHc+uh7/GTdPjq6e6wOzyuawJWysfKaVtbvr+GOCycQExnh8/minA6unJXJa3tPcqYzNJOWN4wxfPu5ndS0dPDQrXNZOjWdl+5byq0L8vjvDYe47nfvcPBki9VhjpgmcKVs7LHNh4h2Orjjogl+O+eKgmzaOnt4Y3+N385pd38pPsq63dV881P5Z0fxxEU7+ckNs3n0s4XUNLdzzW8289jmw/SG0DBLTeBK2VRdawfPbj3ODfNySYuP9tt5F00aS0ZC9KjpRik72cIP1+xhyZS0ARe/+MTMcbz8tWUsnZLGj9bu5Y7Ht1DVdMaCSEdOE7hSNvU/71bS2d3L3Usn+fW8EQ7h6tlZvHGgJixGYgylvauHr67aRlyUk1/eXDDoTeD0hGj+cGchP7nhArZWnuJTD24MieGWmsCVsqEznT089V4ll8/I4Lz0eL+ff0VBNp3dvby256Tfz20nD6zbz/7qFn5xUwEZiTFD7isi3LZwPOvuX8rk9HjuW7WN+/+yjaYz9v2Q0wSulA09u/UYDW2dPk3cGcrcvGRyU8awJoxX6nl970mefKeCLyyexCUjGD8/MS2O1fdexNcvn8banVVc+auNvPNBXQAj9Z4mcKVsxhjD45sPMzs3iYWTUgNyDRFhRUE2m8vqaGjrDMg1rFTd1M63Vu9gZlYi/3Zl/oiPd0Y4uP/yqTz7pYuJjozg9j9s4cf/2Gu74YaawJWymYr60xyqa+Pmwrwh17v01YrZ2XT3GtbtrgrYNazQ02v4+l+3097Vy2/+aS7RTu+HX87JS+Yf9y3h9kXjeXTTYa797du2usGpCVwpmympaAAIWOu7z4ysBKZkxPPi9vDqRnl4wwe8e6ieH157vl/uH8RGOfm/113AE59bwAe1rTy++bAfovQPTeBK2UxpZSOJMU6mBODmZX8iworZ2bxf0UB1U3tArxUsW4808svXDrKiIJub5vs+c7W/S6ZnsGxqOmt3VtlmrLgmcKVspqSykfkTUnyue+KJFQVZGAP/2BX63SjN7V3ct2obWUkx/Pj6WQHpflo5J5uqpnZKKhv9fm5vaAJXykYa2zopr2mlcGJgu0/6TE6PZ1ZOYkiMeR6KMYbvPreLqqZ2fn3rXBJjPFsvdKQunzGOmEj7rGw0bAIXkcdFpEZEdvfblioir4lImft7SmDDVGp0KHW37OZPCN6v1IrZ2ew4eooj9aeDdk1/+1vpMdburOJ/fWJaQF+7uGgnl00fx0u7qujusb4kryct8CeBK87Z9m1gvTFmKrDe/bNSykcllY1ERggFuclBu+Y1BdkAITsm/IPaVn7w4h4umjyWe5efF/DrrSjIpr6tk3c+sL4U7bAJ3BizEWg4Z/O1wB/dj/8IXOffsJQanUorGzg/O4kxUb5XHvRUTvIYCiek2KZbYCQ6unu4b9U2op0OHrxlDhFBuG9QlJ9OQrTTFq+Xt33g44wxVQDu74NOcxKRe0SkRERKamtHZxF5pTzR0d3DjmNNFAax+6TPioJs9le3hFxJ1Z+9fIA9J5r5+acLyEwaeqq8v/StbPTynmrLJ/YE/CamMeYRY0yhMaYwPT090JdTKmTtPt5MZ3cvhRODn8CvuiALhxBSY8LfPFDDY5sPc+dFE7h85rigXntFQRYt7d1sOGBto9TbBH5SRLIA3N9HT2FhpQKktNLVUzl/QnBGoPSXnhDN4ilpPL/tuG3GOA+lsa2Tbz6zg+mZCXznqhlBv/7iKWmkxEayZqe1wy+9TeAvAne6H98JvOCfcJQavUoqGpkwNpb0BP/V/h6JT8/P5fipM2w5fO4tL/t5bd9J6ts6eeDG2X5ZqWikIiMcXHVBFq/vPcnpzu6gX7+PJ8MIVwHvAvkickxE7gIeAD4hImXAJ9w/K6W8ZIyh1D2BxyqfnJlJfLSTZ7cesywGT20uqyM9IZqC3CTLYlhRkM2Zrh5e32ddB4Qno1BuM8ZkGWMijTG5xpjHjDH1xpjLjDFT3d/t/5GtlI1V1J+mvq2TQgu6T/qMiYrg6guyWLerytJW5XB6ew2by+tYOiUtoMW+hrNwYirjEqMtvW+gMzGVsoG+AlZW3MDs78b5ubR19vDy7mpL4xjK3qpmGto6WTotzdI4HA7hmtnZbDhYQ9NpaxZ90ASulA0Eq4DVcBZMTGF8aqytu1E2lbkWV1g8xdoEDq5ulK4ewyt7rfnA0wSulA0UVzQErYDVUESEG+bl8M4H9Zw4ZZ+61/1tKqtlemYCGQnBGfc9lILcJManxlo2qUcTuFIWa2zr5IPatqAVsBrOjfNyMQae33bc6lA+5kxnDyUVjSybZo85Ja6VjbJ4u7yOutaOoF9fE7hSFusrYGXFDMyB5KXGsnBSKs+WHsMYe40J33K4ns6eXpbYoPukz8qCHHoNvGRBSV5N4EpZ7GwBq7xkq0M569PzcjlU18a2o6esDuUjNpXVEeV0BHy1opHIz0xg2rh4S7pRNIErZbG+AlZWTEgZzJUXZBIT6eDZUnvdzNxUVsuiSam2eq3AVZK3uKIx6PcNNIErZSErC1gNJSEmkivOz2TNjhO0d9ljJfaTze0cPNlqq+6TPivcJXnXBrkkryZwpSxkZQGr4dwwL5fm9m7WWzjTsL++4YNLp9rjBmZ/E9PimJ2bxJodwe0H1wSulIWsLGA1nMVT0shMjLHNmPBNZbWkxUczPTPB6lAGtLIgm13Hmzhc1xa0a2oCV8pCVhewGkqEQ7hubg4bDtZS2xL8IXL99fYa3i6vY8mUsZaPlR/M1bOzAIJ6M1MTuFIWsUMBq+F8en4OPb2GF7ZbOyZ8X3Uzda2dtuw+6ZOVNIaFE1N5cceJoA2/1ASulEXsUMBqOFMyEijITWK1xaNRPuz/tt8NzP5WzMmmvKaV/dXBWdlIE7hSFim2SQGr4dw4P5f91S3sOdFkWQyby+rIH5dARqL10+eHctWsTCIcErRuFE3gSlmktKKRpDGRlhewGs6K2dlERgjPllrTjXKms4f3Kxps3/oGGBvvWtlozc7gdKNoAlfKIiWV9ihgNZyUuCgumz6OF7Yfp6unN+jXf7+igc7uXpbapP7JcFbMzuJowxm2B2EWqyZwpSzQV8DKzjcw+7txfi71bZ2WLOK76WAtUREOFtqk2NdwPnl+JlERjqCMCdcErpQF7FbAajhF+emMjYuyZEz45vI6FkxKYUyUvabPDyZpTCRF+ems3XmCngAvEK0JXCkL2LGA1VAiIxysnJPN+n01nDrdGbTr1jS3s7+6xdbDBweyoiCbmpYO3g/wAtGawJWygB0LWA3nxnm5dPb0BnWiSt/wQTvWPxnKZTMyiI2K4MUAv1aawJUKMrsWsBrO+dmJTM9MYPXW4I1G2Vxex9i4KGZmJQbtmv4QG+Xk8hnjWLe7KqA3fjWBKxVkdi5gNRQR4cZ5uew4eorymtaAX6+317CprI4lU9NsP1JnICsKsjl1uovN5XUBu4YmcKWCzM4FrIZz7dxsIhwSlJuZ+6tbqGvtCLnukz7LpqWRGONkzfbAdaNoAlcqyOxcwGo4GQkxLJuaxvNbjwd8hMXmcteQxVC7gdkn2hnBFbMyeXXvyYDVVNcErlQQhUIBq+HcOD+X6uZ23vkgcF0D4LqBOW1cPJlJ9p4+P5SVBTm0dnTz5v7A1FTXBK5UEB2ua7N9AavhXD5jHIkxzoAut9be1cOWww0smRKare8+F05OJS0+ijUBWqnHpwQuIl8XkT0isltEVolI6H5UKhUEJe4JPAtC7AZmfzGREVxTkM3Le6ppae8KyDWKz06fD83+7z7OCAdXXZDF+n01tHZ0+/38XidwEckB7gMKjTGzgAjgVn8FplQ46itgdZ7NC1gN58Z5ObR39bJuV3VAzr+prI6oCAeLbLT6vLdWFmTT0d3La3v9/1r52oXiBMaIiBOIBYK7oqdSISZUClgNZ974FCalxbE6QKNRNh6sZf6EFGKjnAE5fzDNG59CdlJMQGqjeJ3AjTHHgV8AR4AqoMkY8+q5+4nIPSJSIiIltbXBL4SjlF2EWgGroYgIN8zN4f3DDRxtOO3Xc9e0uKfPh3j3SR+HQ7h6dhabymr93o3iSxdKCnAtMAnIBuJE5DPn7meMecQYU2iMKUxPD+0bEkr5ItQKWA3n+nk5AH4fE/62e+LLshAdPjiQS6Zn0NVjzv7b/MWXLpTLgcPGmFpjTBfwHHCxf8JSKvyEWgGr4eSmxHLR5LE8t/W4Xxcv2HSwjtQQnD4/lMIJqcRFRfCWn8vx+pLAjwAXikisiAhwGbDPP2EpFX5CsYDVcG6cn8uRhtMUVzT65XzGGDaV17F4SmhOnx9MlNPBkqlpbDhQ49cPO1/6wLcAq4GtwC73uR7xU1xKhZVQLWA1nCtnZRIbFcFzfupGOXCyhdqWjpBYPm2kivIzONHUzsGT/qsj49MoFGPMfxhjphtjZhlj7jDGdPgrMKXCSagWsBpOXLSTK2Zl8o+dVTT7YUz4poOhsfq8N4ryXX36bx3w36xMnYmpVBCEcgGr4Xz2oomc6erh7idLONPpW82PTeV1TMmIJytpjJ+is4+spDFMz0zwaz+4JnClgiCUC1gNZ05eMg/eMofiygbufaqUzm7v6l+3d/Ww5VB9WLa++yzPT6ekssFvM1g1gSsVYH0FrEK5/slwVhRk85PrL2DDwVru/8s2ur1YxKCkopGO7t6wTuBF0/qGE9b75XyawJUKsLMFrMKs//tcty4cz/evnsG63dV8+7ld9I6w3Oym8loiI4RFk8YGKELrFU5MIT7ayYaD/ukHD/15qkrZXEmYTeAZyt1LJ9Pa0c2vXi8jPtrJf6yYiWuU8fA2Haxj/oQU4qLDNy1FRjhYMiWNtw7UYozx+LUZjLbAlQqwcClg5an7L5vK3Usm8eQ7Ffznqwc9Oqa2pYO9Vc0hu3jDSBTlp1Plp+GE4ftRp5RNhEsBK0+JCN+7egatHd389s1y4mOc3Lv8vCGP6ZtiHs79332Wu4cTvnmghvzMBJ/OpS1wpQIonApYjYSI8OPrL+Ca2Vk8sG4/T71XOeT+m8rqSImN5PzspCBFaJ0PhxP63g+uCVypAAq3AlYjEeEQHrxlDpdNz+B/v7Cb57cNPFvTGMOmslounpJGxCj5K6UoP4OSikafhxNqAlcqgMKtgNVIRUY4+N3t87hw0li++bedvLLn44saHDzZSk1LB8tGQfdJn6L8dLp7fR9OqAlcqQAKxwJWIxUTGcGjdxZyQU4SX/3zNjaVfXQmYt/PS0bBDcw+8yekkBDt9LkbRRO4UgESrgWsvBEf7eTJzy9gcnoc9/xPKSUVDWef21RWx+T0OHKSw2/6/GAiIxws7jec0FuawJUKkHAtYOWt5Ngo/nTXIjKTYvj8E8XsPt7kXn2+PqwWb/DUJdPTqW5u58DJFq/PoQlcqQAJ5wJW3kpPiOapuxeROCaSzz7+Ps+UHKW9K7ynzw9m+bQMAJ+KW2kCVypAisO4gJUvcpLH8NTdi3CI8O8v7MHpEBZNDt/p84PJTIphemYCb+73vh9cE7hSAdBXwGrBRG19D2RSWhx/umshSWMiuXDyWOLDePr8UIryMyit9H44oSZwpQLgUF0bDW2dLND+70HNyErkjW8s5ze3zbU6FMtccnY4oXeLHWsCVyoA+kZZFGoLfEhj46NJiYuyOgzLzDs7nNC7fnBN4EoFQHFFI6lxUUxOi7M6FGVjkRGuxY69HU6oCVypACipcBWw8rVcqAp/Rfmu4YT7q0c+nFATuFJ+VtPSTkX9ae3/Vh4pyvd+OKEmcKX8rLTCXcBK+7+VB8YlxjAjK9GrafWawJXys+KKRqKdDmaNgtKoyj+K8tMpqWykeYTDCTWBK+VnpZUNzMlLJsqpv17KM0XT0unpNbxdNrLhhPoOU8qPTnd2s/tEs07gUSMyb0IKCTEjH06oCVwpP9p+5BQ9vUYLWKkRiYxwsHRqGm8drBnRcEKfEriIJIvIahHZLyL7ROQiX86nVKgrrmhExNWiUmokiqZlcLK5g31Vng8n9LUF/mvgZWPMdKAA2Ofj+ZQKaSWVDeSPSyAxJtLqUFSI6Vvs+K2Dno9G8TqBi0gisAx4DMAY02mMOeXt+ZQKdd09vWzVAlbKS+MSY5iZlTiifnBfWuCTgVrgCRHZJiJ/EJGPzRsWkXtEpERESmprva97q5Td7a9uoa2zR/u/ldeK8tMpHcFwQl8SuBOYB/yXMWYu0AZ8+9ydjDGPGGMKjTGF6emjb9UNNXr0FbDSFrjyVlF+Bj29hs0eDif0JYEfA44ZY7a4f16NK6ErNSoVVzaSkzyG7FG0tqPyr3njk93DCT3rB/c6gRtjqoGjIpLv3nQZsNfb8ykVyowxlFQ0aPeJ8okzwsGyqelsOOhZdUJfR6F8FXhaRHYCc4D/5+P5lApJxxrPcLK5Q+ufKJ8tz0/3eDihT+sYGWO2A4W+nEOpcFDct4CDjv9WPiqa5rpX+OaBGmZmJw65r87EVMoPiisaSYhxMm1cgtWhqBCX4R5OuMGD4YSawJXyg74FHCIcuoCD8t0l09MpPdJI05mhhxNqAlfKR6dOd1JW06rDB5Xf9A0nHG6xY03gSvmotNK9gIP2fys/mZuXTGKMkzf3Dz2cUBO4Uj4qrmgkMkIoyEu2OhQVJpwRDpZ6MJxQE7hSPiqpaOCCnCRiIiOsDkWFkaL8dGpaOthb1TzoPprAlfJBe1cPO4816fhv5XdnqxMOMRpFE7hSPth1vInOnl7t/1Z+l5EQw/nZQy92rAlcKR/0TeCZrwlcBUBRfjpbj5wa9HlN4Er5oKSikfPS4xgbH211KCoMXeIeTjgYTeBKeam311CqCzioAJqTl8zYuKhBn9cErpSXymtbaTrTpTcwVcA4Ixy8851LB31eE7hSXio+u4CD9n+rwIl2Dj48VRO4Ul4qqWgkPSGa8amxVoeiRilN4Ep5qbiigcIJKYhoAStlDU3gSnmhqukMxxrPaP+3spQmcKW8UFLhKmCl/d/KSprAlfJCSUUDsVERzMwaesUUpQJJE7hSXiipbGTu+GScEforpKyj7z6lRqilvYt9Vc0UTtD+b2WtoCbwzu7eYF5OqYDYduQUvQadgaksF9QEfuLUmWBeTqmAKKlowCEwZ3yy1aGoUS6oCbylo5uqJk3iKrQVVzQyMzuR+Gin1aGoUS7ofeCrS44F+5JK+U1XTy/bjjZq/7eyhaAm8PhoJ8+UHqV3iPKIStnZnhPNtHf1av+3sgWfE7iIRIjINhFZO9y+KbFRHG04w7uH6n29rFKWKHEXsCrUCTzKBvzRAr8f2OfJjkljIkmMcfLX4qN+uKxSwVdS0cj41FjGJcZYHYpSviVwEckFrgb+4Nn+cN3cHF7eU03T6S5fLq1U0BljKKls0Na3sg1fW+C/Av4V8HiA982FeXR29/L37cd9vLRSwVVRf5q61k69galsw+sELiLXADXGmNJh9rtHREpEpKS2tpZZOUmcn52o3Sgq5OgCDspufGmBLwZWikgF8BfgUhF56tydjDGPGGMKjTGF6enpANy6II+9Vc3sPt7kw+WVCq6SigaSYyM5Lz3e6lCUAnxI4MaY7xhjco0xE4FbgTeMMZ/x5NiVc3KIdjq0Fa5CSklFI4UTUnA4dAEHZQ+WFLNKGhPJlbMy+fv247R39VgRglIjUtfawaG6Nl3AQdmKXxK4MeYtY8w1Iznm5gV5tLR38/Luan+EoFRAlVbqAg7KfiwrJ3vhpLGMT43lL8VHrApBKY+VVDQQ5XQwKyfJ6lCUOsuyBO5wCDcX5vLeoQYq69usCkMpjxRXNFKQm0S0M8LqUJQ6y9IFHT49Pw+HwDMlejNT2deZzh52H2/S/m9lO5Ym8MykGJZPS2d16TG6e3SxB2VP24+eorvXaP+3sh3Ll1S7ZUEeJ5s72FhWa3UoSg2or4DV/PHaAlf2YnkCv3T6ONLio3RMuLKt4spG8sclkBQbaXUoSn2E5Qk8yunghnm5rN9XQ21Lh9XhKPURPb2GbZWNWsBK2ZLlCRxcBa66ew3Pb9PVepS9vHWghpaObi46b6zVoSj1MbZI4FMy4pk/IYW/Fh/FGF2tR9mDMYaH1peRlzqGT52faXU4Sn2MLRI4wC2FeXxQ23Z2xptSVttwsJYdx5r4ctEUIiNs86ui1Fm2eVdePTuLuKgIvZmpbMEYw6/Xl5GTPIYb5uVaHY5SA7JNAo+LdnLN7Gz+sauK1o5uq8NRo9zb5fVsO3KKLxWdR5TTNr8mSn2Erd6ZNy/I43RnD2t3nLA6FDWKuVrfB8lKiuGmQm19K/uyVQKfNz6ZqRnx/FWn1isLvXuonuKKRr5UdJ7WPlG2ZqsELiLcsiCPbUdOUXayxepw1Cj10PoyMhKiubkwz+pQlBqSrRI4wPVzc4iMEL2ZqSyx5VA97x1q4N7l5xETqa1vZW+2S+Bj46O5fMY4ntt2nM5uLXClgus3b5STFh/NbQvHWx2KUsOyXQIH183MhrZO1u87aXUoahQprWxgc3kd/7xsMmOitPWt7M+WCXzZ1HSykmL0ZqYKqofWl5MaF8XtF2rrW4UGWybwCIfw6fm5bDhYy4lTZ6wOR40C24+eYsPBWr64dDKxUU6rw1HKI7ZM4AA3zc/DGFhdqgWuVOA9tL6MlNhIPnvRBKtDUcpjtk3g48fGsnjKWJ4pOUpvrxa4UoGz61gTb+yv4e6lk4mL1ta3Ch22TeDgKjN7rPEM7x6qtzoUFcYeeqOMxBintr5VyLF1Av/U+ZkkjYnUMeEqYPacaOK1vSe5a8lkEmJ0xR0VWmydwGMiI7huTjYv76nmUG2r1eGoMPTbN8pJiHbyucUTrQ5FqRGzdQIHuOOiCTgdwicf3Mj3nt/FyeZ2q0NSYeJAdQvrdlfz+cUTSRqjrW8VerxO4CKSJyJvisg+EdkjIvf7M7A+UzISeOubRdy2cDx/LT7K8p+/yU/W7ePU6c5AXE6NIg+9UUZcVARfWDLJ6lCU8oovLfBu4BvGmBnAhcCXRWSmf8L6qIzEGH503Sze+EYRV87K4pGNh1j6szf57RtltGntcOWFspMtvLSrijsvnkhybJTV4SjlFa8TuDGmyhiz1f24BdgH5PgrsIGMHxvLg7fM4eX7l3Hh5LH84tWDLP/5mzzx9mE6unsCeWkVZn77ZjljIiO4e+lkq0NRymt+6QMXkYnAXGCLP843nPzMBB79bCHP/cvFTM1I4Idr9nLpLzbwt5Kj9OiYcTWMD2pbWbPjBHdcNIHUOG19q9DlcwIXkXjgWeBrxpjmAZ6/R0RKRKSktrbW18t9xLzxKfz5i4t46q5FjI2P4lurd/KpX21k3a4qXd1eDep3b5YT5XTwRW19qxDnUwIXkUhcyftpY8xzA+1jjHnEGFNojClMT0/35XKDxcCSqWm88OXFPPyZeQB86emtXPu7t9lUVquJXH1ERV0bL2w/wWcWTSAtPtrqcJTyiS+jUAR4DNhnjPml/0LyOh6umJXFK19bxi9uKqC+tZM7HnufO58o1qn46qzfv1WO0yHcs0xb3yr0+VL4YTFwB7BLRLa7t33XGPOSz1H5oK+S4YqCLFZtOUJDWycOh1gZkrKJow2neW7rcT5z4QQyEmOsDkcpn3mdwI0xmwHbZsZoZwSfW6zje9WHfv9WOQ4R7l1+ntWhKOUXtp+JqZQ/HGs8zerSY9y6MI/MJG19q/CgtTNV2Grt6KakooEthxt4fa9reT5tfatwoglchY2m010UVzSw5XA9Ww43sPt4E70GnA7hgtwkfnrjbLKTx1gdplJ+owlchayGtk7eP1zPe4dcrez91c0YA1ERDubkJfPlS6awaNJY5k1I1mXSVFjSd7UKGR3dPby+t4Z3D9Wx5VADZTWuEsMxkQ7mjU/ha5dNY9HkVObkJRMTqavKq/CnCVzZ3unObla9f5RHNx6iurmduKgI5k9M5bq5OVw4OZULcpKJcur9eDX6aAJXttXc3sWf3q3ksc2HaWjrZNGkVB648QKWTEnDGaEJWylN4Mp26ls7ePztw/zPO5W0dHRTlJ/OVy6ZQuHEVKtDU8pWNIEr26hqOsOjGw+z6v0jtHf3cOWsTP6laAqzcpKsDk0pW9IErixXWd/Gwxs+YHXpMXoNXDcnhy8VTWZKRoLVoSlla5rAlWUOVLfw+7fKWbPjBM4IB7csyOOfl51HXmqs1aEpFRI0gaug23H0FL97s5xX954kNsq1Ks7dSyZpgSmlRkgTuAoqYwzfWr2Dk80d3H/ZVD538URSdFUcpbyiCVwFlYjw23+aR3byGOKj9e2nlC/0N0gF3bRxenNSKX/Q2RBKKRWiNIErpVSI0gSulFIhShO4UkqFKE3gSikVojSBK6VUiNIErpRSIUqMMcG7mEgLcCBoF/RdEtBkdRAeCqVYQeMNpFCKFTReT+QbYz42gSLYE3kOGGMKg3xNr4nII8aYe6yOwxOhFCtovIEUSrGCxuvhNUsG2q5dKENbY3UAIxBKsYLGG0ihFCtovF4LdhdKSSi1wJVSyg4Gy53BboE/EuTrKaVUOBgwdwa1Ba6UUsp/Rk0fuIhcISIHRKRcRL7t3vYjEdkpIttF5FURyfb0WPf2VBF5TUTK3N9TAhmve/tX3dv3iMjP7BDvIK9tgYi8KyK7RGSNiCTaJNbHRaRGRHb32/ZzEdnvfi88LyLJdoh1iHh/ICLH3e/b7SJylc3jnSMi77ljLRGRhXaIV0TyRORNEdnn/n263739JvfPvSIyaJevFa/vxxhjwv4LiAA+ACYDUcAOYCaQ2G+f+4CHPT3W/dzPgG+7H38b+GmA470EeB2Idu+XYXW8Q8RaDCx37/MF4EdWx+o+1zJgHrC737ZPAk73458OdC0rYh0i3h8A3/Tm/8WieF8FrnQ/vgp4yw7xAlnAPPfjBOCg+707A8gH3gIK7fT6nvvldQt8kFaXR588FnxyLQTKjTGHjDGdwF+Aa40xzf32iQMG6k8a8Fj3c9cCf3Q//iNwXSDjBb4EPGCM6QAwxtTYIN7BrpcPbHTv8xpwow1ixRizEWg4Z9urxphu94/vAbl2iHWweD1kp3gN0PcXWBJwwg7xGmOqjDFb3Y9bgH1AjjFmnzFmuPkqlry+5/IqgYtIBPA74Epcn1i3ichMXJ82640xU4H17p89PRZPjvdSDnC038/H3NsQkR+LyFHgduDf3duyReSl4Y4FxhljqsD1ZgAyAhzvNGCpiGwRkQ0issAG8Q52vd3ASve2m4A8G8TqiS8A60Ig1q+4u3we72vo2DjerwE/d/+e/QL4jt3iFZGJwFxgyxD72CbePt62wAf79PHkk8eKTy4ZYJsBMMZ8zxiTBzwNfMW97YQx5qrhjg2gwa7pBFKAC4FvAc+IiFgc72DX+wLwZREpxfXnaSfY4rUdlIh8D+jG9V6wc6z/BZwHzAGqgP8EW8f7JeDr7t+zrwOPgX3iFZF44Fnga+f8Vf7RYGwSb3/eJvDBPn0G/OSxwSfXMdwtQLdcPv5n3J8Z+M/8oY49KSJZAO7vA3VpeGOwax4DnjMu7wO9QJrF8Q54PWPMfmPMJ40x84FVuPoLPTo2gLEOSkTuBK4Bbjfuzku7xmqMOWmM6THG9AKP4moU2TZe4E7gOffjv2GjeEUkElfyftoY89xw+/dji9fX2wQ+ok8fG3xyFQNTRWSSiEQBtwIvisjUfvusBPZ7eqz7uRdxvTlxf38hkPECfwcuBRCRabhuntRZHO9gr23fh7cD+D7w8Aj+nYGKdUAicgXwb8BKY8zpQXazRazueLP6/Xg9ru6qc9kmXlyJbbn78aVA2QD7BD1eERFcfw3sM8b8coSH2+P19ebOJ3AR8Eq/n7/j/joAZJkP7/Ae8PRY9+Nhj/f2C9fd74O4WoLfc297Ftebfyeu6bE57u3ZwEtDHevePhZXX32Z+3tqgOONAp5yx7wVuNQO8Q4S6/3ubQeBB/hwzoHVsa7C1e3QhasVdRdQjuuvwu3ur4ftEOsQ8f4J2OV+377Y73fGrvEuAUpxjdTYAsy3Q7zuuIz7dez7v78K14fiMaADOIk7X1kd70BfXk3kERGnO/DLgOO4Po3+CfgcUG+MecA9uiTVGPOvnhxrjNkjIj8f7nillFIuXs/EFNfkgV/hGg/5uDHmxyIyFngGGA8cAW4yxjSIa4LMH4y7G2WgY93bBzze+3+eUkqFL51Kr5RSIWrUTKVXSqlwowlcKaVClMcJfJCp854WfXlSRE6LSEK/bb8WESMi545jVkop5QGPEvgQ0993AzfwYc2LoZTjnnHpHht8Ca5RKEoppbzgaQt8sGJQnhR96bMKuMX9uAh4G9e0ZQBE5O8iUupu0d/j3naXiDzYb58vishIB9wrpVRY8jSBDzX93VNlQLq78M5tuD4E+vuCcU27LgTucw8p/Auw0j3dFeDzwBMjvK5SSoUlTxO4v6a/P4dryukiYNM5z90nIjtwlfPMA6YaY9qAN4BrRGQ6EGmM2eXFdZVSKuw4PdzPk2JQZ4nIE7hKM/avgQKuFvVW4I/GmF5XKQIQkSLgcuAiY8xpEXkLiHEf8wfgu7jqlGjrWyml3DxN4GcLt+C68XgrrqnzAzLGfH6Q7UfcJTtfP+epJKDRnbyn4yqX2nfMFhHJw7XKx2wP41VKqbDnUReKca1W8hXgFVyrVjzjrl1yvYgcw1Wg6h8i8ooH5/pvY8y5pUVfBpwishP4Ea5ulP6eAd42xjR6Eq9SSo0GITGVXkTWAg8aY9ZbHYtSStmFrWdiikiyiBwEzmjyVkqpjwqJFrhSSqmPs3ULXCml1OA0gSulVIjSBK6UUiFKE7hSSoUoTeBq1BGRIhG52IvjKrwpfywi3x3pMUp5QhO4CmnuRbJHqggYcQL3gSZwFRDevPmVCioR+SzwTVwF1HYCPUADrno7W0Xk97jq1acDp4EvGmP2i8gK4PtAFFAP3A6MAe4FekTkM8BXcdXZeRjXYtoAXzPGvO2uiLnKfd73GbioW/84/46rZlAM8GtjzCMi8gAwRkS2A3uMMbf7/ooo5aLjwJWticj5uKpYLjbG1IlIKvBLIA1XTfoeEVkP3GuMKRORRcBPjDGXuksXnzLGGBG5G5hhjPmGiPwAaDXG/MJ9jT8DvzfGbBaR8cArxpgZIvIQUGeM+T8icjWwFkg3xtQNEmuqMaZBRMbgqh+03BhTLyKtxpj4QL5OanTSFriyu0uB1X1J050gAf7mTt7xuLpD/tZX3RKIdn/PBf4qIlm4WuGHB7nG5cDMfscnupf/W4ZrxSmMMf8QkeFq8dwnIte7H+cBU3G1/JUKCE3gyu6EgWvPt7m/O3C1sucMsM9vgF8aY150lyz+wSDXcOAqZXzmIxd2JXSP/kQdpiSyUgGhNzGV3a0Hbnb3R+PuQjnLGNMMHBaRm9zPi4gUuJ9O4sN1V+/sd1gLkNDv51dxVdvEfY457ocbcfWbIyJXAilDxDloSWSgq9+qUkr5jSZwZWvGmD3Aj4EN7hWbBloT9XbgLvfze3Avno2rxf03EdkE9O+3XgNcLyLbRWQpcB9QKCI7RWQvrpucAD8ElonIVuCTwJEhQh2qJPIjwE4RedrTf7dSntCbmEopFaK0Ba6UUiFKb2IqNQLuvviBatNfZozREScqqLQLRSmlQpR2oSilVIjSBK6UUiFKE7hSSoUoTeBKKRWiNIErpVSI+v+1+zjP9AWOdwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df2['count'].plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x216 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 折线图和直方图可以看到业务高峰时段在什么地方，分不清具体时间，此时绘制柱状图。\n",
    "plt.figure(figsize = (10,3))# 调整画布大小。\n",
    "df2['count'].plot(kind = 'bar')\n",
    "plt.xticks(rotation = 60) # 文字旋转60度。\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 分析有没有异常时段，访问接口过于频繁，可能就是黑客攻击，使用箱线图。\n",
    "df['2019-05-01'][['count']].boxplot(showmeans = True,meanline = True) \n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sun</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>created_at</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>created_at</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-11-01 20:47:09</th>\n",
       "      <td>227295</td>\n",
       "      <td>21</td>\n",
       "      <td>3117.20</td>\n",
       "      <td>84.90</td>\n",
       "      <td>260.82</td>\n",
       "      <td>148.0</td>\n",
       "      <td>2018-11-01 20:47:09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 21:03:09</th>\n",
       "      <td>228772</td>\n",
       "      <td>21</td>\n",
       "      <td>3706.20</td>\n",
       "      <td>78.12</td>\n",
       "      <td>321.47</td>\n",
       "      <td>176.0</td>\n",
       "      <td>2018-11-01 21:03:09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 21:13:09</th>\n",
       "      <td>229667</td>\n",
       "      <td>24</td>\n",
       "      <td>4602.03</td>\n",
       "      <td>76.31</td>\n",
       "      <td>391.12</td>\n",
       "      <td>191.0</td>\n",
       "      <td>2018-11-01 21:13:09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-02 21:34:11</th>\n",
       "      <td>311202</td>\n",
       "      <td>30</td>\n",
       "      <td>4610.15</td>\n",
       "      <td>72.49</td>\n",
       "      <td>463.41</td>\n",
       "      <td>153.0</td>\n",
       "      <td>2018-11-02 21:34:11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-03 14:20:13</th>\n",
       "      <td>353337</td>\n",
       "      <td>21</td>\n",
       "      <td>3113.93</td>\n",
       "      <td>74.29</td>\n",
       "      <td>266.20</td>\n",
       "      <td>148.0</td>\n",
       "      <td>2018-11-03 14:20:13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-30 21:33:21</th>\n",
       "      <td>13431497</td>\n",
       "      <td>27</td>\n",
       "      <td>6456.64</td>\n",
       "      <td>99.65</td>\n",
       "      <td>978.91</td>\n",
       "      <td>239.0</td>\n",
       "      <td>2019-05-30 21:33:21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-30 21:43:21</th>\n",
       "      <td>13432325</td>\n",
       "      <td>21</td>\n",
       "      <td>6371.84</td>\n",
       "      <td>65.98</td>\n",
       "      <td>1175.37</td>\n",
       "      <td>303.0</td>\n",
       "      <td>2019-05-30 21:43:21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-30 21:47:21</th>\n",
       "      <td>13432632</td>\n",
       "      <td>21</td>\n",
       "      <td>3992.83</td>\n",
       "      <td>87.83</td>\n",
       "      <td>440.88</td>\n",
       "      <td>190.0</td>\n",
       "      <td>2019-05-30 21:47:21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-30 21:53:21</th>\n",
       "      <td>13433108</td>\n",
       "      <td>24</td>\n",
       "      <td>8467.02</td>\n",
       "      <td>120.22</td>\n",
       "      <td>1511.17</td>\n",
       "      <td>352.0</td>\n",
       "      <td>2019-05-30 21:53:21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-30 22:17:21</th>\n",
       "      <td>13435027</td>\n",
       "      <td>21</td>\n",
       "      <td>4926.35</td>\n",
       "      <td>85.01</td>\n",
       "      <td>826.90</td>\n",
       "      <td>234.0</td>\n",
       "      <td>2019-05-30 22:17:21</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>746 rows × 7 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                           id  count  res_time_sun  res_time_min  \\\n",
       "created_at                                                         \n",
       "2018-11-01 20:47:09    227295     21       3117.20         84.90   \n",
       "2018-11-01 21:03:09    228772     21       3706.20         78.12   \n",
       "2018-11-01 21:13:09    229667     24       4602.03         76.31   \n",
       "2018-11-02 21:34:11    311202     30       4610.15         72.49   \n",
       "2018-11-03 14:20:13    353337     21       3113.93         74.29   \n",
       "...                       ...    ...           ...           ...   \n",
       "2019-05-30 21:33:21  13431497     27       6456.64         99.65   \n",
       "2019-05-30 21:43:21  13432325     21       6371.84         65.98   \n",
       "2019-05-30 21:47:21  13432632     21       3992.83         87.83   \n",
       "2019-05-30 21:53:21  13433108     24       8467.02        120.22   \n",
       "2019-05-30 22:17:21  13435027     21       4926.35         85.01   \n",
       "\n",
       "                     res_time_max  res_time_avg           created_at  \n",
       "created_at                                                            \n",
       "2018-11-01 20:47:09        260.82         148.0  2018-11-01 20:47:09  \n",
       "2018-11-01 21:03:09        321.47         176.0  2018-11-01 21:03:09  \n",
       "2018-11-01 21:13:09        391.12         191.0  2018-11-01 21:13:09  \n",
       "2018-11-02 21:34:11        463.41         153.0  2018-11-02 21:34:11  \n",
       "2018-11-03 14:20:13        266.20         148.0  2018-11-03 14:20:13  \n",
       "...                           ...           ...                  ...  \n",
       "2019-05-30 21:33:21        978.91         239.0  2019-05-30 21:33:21  \n",
       "2019-05-30 21:43:21       1175.37         303.0  2019-05-30 21:43:21  \n",
       "2019-05-30 21:47:21        440.88         190.0  2019-05-30 21:47:21  \n",
       "2019-05-30 21:53:21       1511.17         352.0  2019-05-30 21:53:21  \n",
       "2019-05-30 22:17:21        826.90         234.0  2019-05-30 22:17:21  \n",
       "\n",
       "[746 rows x 7 columns]"
      ]
     },
     "execution_count": 55,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 从上图可以看出，20-25为异常值，但是超过上边界并不多，数量较小，结合数据情况，考虑可能为高峰访问时段，并不是黑客攻击。 \n",
    "# 可以拿出20-25之间的数据，进行查看。\n",
    "df[df['count'] >20]  # 可以看出，超过20次访问的数据，时间段都在高峰期，以此确定，无黑客攻击。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 分析某一天的响应时间，平均响应时间。\n",
    "df['2019-05-01']['res_time_avg'].plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df['2019-05-01'][['res_time_avg']].boxplot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 可以看出，大于300ms的数据都归为异常值，我们对1000ms以上的数据进行分析。\n",
    "df2 = df['2019-05-01']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "<ipython-input-59-dcae5078167e>:1: UserWarning: Boolean Series key will be reindexed to match DataFrame index.\n",
      "  df2[df['res_time_avg']>1000]\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sun</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>created_at</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>created_at</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2019-05-01 00:34:48</th>\n",
       "      <td>11408773</td>\n",
       "      <td>1</td>\n",
       "      <td>1694.47</td>\n",
       "      <td>1694.47</td>\n",
       "      <td>1694.47</td>\n",
       "      <td>1694.0</td>\n",
       "      <td>2019-05-01 00:34:48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 14:00:49</th>\n",
       "      <td>11431010</td>\n",
       "      <td>17</td>\n",
       "      <td>19770.18</td>\n",
       "      <td>207.54</td>\n",
       "      <td>2974.52</td>\n",
       "      <td>1162.0</td>\n",
       "      <td>2019-05-01 14:00:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 18:36:49</th>\n",
       "      <td>11451787</td>\n",
       "      <td>8</td>\n",
       "      <td>8799.92</td>\n",
       "      <td>96.59</td>\n",
       "      <td>3233.26</td>\n",
       "      <td>1099.0</td>\n",
       "      <td>2019-05-01 18:36:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 19:09:49</th>\n",
       "      <td>11454117</td>\n",
       "      <td>6</td>\n",
       "      <td>7399.94</td>\n",
       "      <td>307.39</td>\n",
       "      <td>3153.02</td>\n",
       "      <td>1233.0</td>\n",
       "      <td>2019-05-01 19:09:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 19:10:49</th>\n",
       "      <td>11454151</td>\n",
       "      <td>13</td>\n",
       "      <td>23595.60</td>\n",
       "      <td>206.20</td>\n",
       "      <td>4664.84</td>\n",
       "      <td>1815.0</td>\n",
       "      <td>2019-05-01 19:10:49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-01 20:38:49</th>\n",
       "      <td>11460717</td>\n",
       "      <td>15</td>\n",
       "      <td>16169.25</td>\n",
       "      <td>142.47</td>\n",
       "      <td>3624.26</td>\n",
       "      <td>1077.0</td>\n",
       "      <td>2019-05-01 20:38:49</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                           id  count  res_time_sun  res_time_min  \\\n",
       "created_at                                                         \n",
       "2019-05-01 00:34:48  11408773      1       1694.47       1694.47   \n",
       "2019-05-01 14:00:49  11431010     17      19770.18        207.54   \n",
       "2019-05-01 18:36:49  11451787      8       8799.92         96.59   \n",
       "2019-05-01 19:09:49  11454117      6       7399.94        307.39   \n",
       "2019-05-01 19:10:49  11454151     13      23595.60        206.20   \n",
       "2019-05-01 20:38:49  11460717     15      16169.25        142.47   \n",
       "\n",
       "                     res_time_max  res_time_avg           created_at  \n",
       "created_at                                                            \n",
       "2019-05-01 00:34:48       1694.47        1694.0  2019-05-01 00:34:48  \n",
       "2019-05-01 14:00:49       2974.52        1162.0  2019-05-01 14:00:49  \n",
       "2019-05-01 18:36:49       3233.26        1099.0  2019-05-01 18:36:49  \n",
       "2019-05-01 19:09:49       3153.02        1233.0  2019-05-01 19:09:49  \n",
       "2019-05-01 19:10:49       4664.84        1815.0  2019-05-01 19:10:49  \n",
       "2019-05-01 20:38:49       3624.26        1077.0  2019-05-01 20:38:49  "
      ]
     },
     "execution_count": 59,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df2[df['res_time_avg']>1000]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 2019-05-01 00:34:48\t11408773\t1\t1694.47\t1694.47\t1694.47\t1694.0\t2019-05-01 00:34:48定义为一个异常值。\n",
    "df['2019-05-01'][['res_time_sun',\t'res_time_min',\t'res_time_max',\t'res_time_avg']].plot()\n",
    "plt.show()  #  以这四个响应时间，来分析异常值，拿到4个响应时间的折线图，发现数据过多，优化数据后再绘制图表，便于观看。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "data = df['2019-05-01'].resample('20T').mean()\n",
    "data[['res_time_sun',\t'res_time_min',\t'res_time_max',\t'res_time_avg']].plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 业务高峰时段，下午2-3点，晚上7-8点，响应时间都是上升的。这只是一天的数据，没有代表性，下列取10天的数据，进行分析。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df['2019-05-01' : '2019-05-10']['count'].plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Int64Index([3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\n",
       "            ...\n",
       "            3, 3, 3, 3, 3, 3, 3, 3, 3, 3],\n",
       "           dtype='int64', name='created_at', length=865)"
      ]
     },
     "execution_count": 66,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 每天的情况都差不多。下边来看，周末和平常是否一样。\n",
    "df['2019-05-02'].index.weekday   # 0 代表星期一，1 代表星期二， 5  6 代表周六周末。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sun</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>created_at</th>\n",
       "      <th>weekday</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>created_at</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:00:07</th>\n",
       "      <td>2019162542</td>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>2018-11-01 00:00:07</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:01:07</th>\n",
       "      <td>162644</td>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>2018-11-01 00:01:07</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:02:07</th>\n",
       "      <td>162742</td>\n",
       "      <td>5</td>\n",
       "      <td>845.84</td>\n",
       "      <td>136.31</td>\n",
       "      <td>225.73</td>\n",
       "      <td>169.0</td>\n",
       "      <td>2018-11-01 00:02:07</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:03:07</th>\n",
       "      <td>162808</td>\n",
       "      <td>9</td>\n",
       "      <td>1305.52</td>\n",
       "      <td>90.12</td>\n",
       "      <td>196.61</td>\n",
       "      <td>145.0</td>\n",
       "      <td>2018-11-01 00:03:07</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:04:07</th>\n",
       "      <td>162943</td>\n",
       "      <td>3</td>\n",
       "      <td>568.89</td>\n",
       "      <td>138.45</td>\n",
       "      <td>232.02</td>\n",
       "      <td>189.0</td>\n",
       "      <td>2018-11-01 00:04:07</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                             id  count  res_time_sun  res_time_min  \\\n",
       "created_at                                                           \n",
       "2018-11-01 00:00:07  2019162542      8       1057.31         88.75   \n",
       "2018-11-01 00:01:07      162644      5        749.12        103.79   \n",
       "2018-11-01 00:02:07      162742      5        845.84        136.31   \n",
       "2018-11-01 00:03:07      162808      9       1305.52         90.12   \n",
       "2018-11-01 00:04:07      162943      3        568.89        138.45   \n",
       "\n",
       "                     res_time_max  res_time_avg           created_at  weekday  \n",
       "created_at                                                                     \n",
       "2018-11-01 00:00:07        177.72         132.0  2018-11-01 00:00:07        3  \n",
       "2018-11-01 00:01:07        240.38         149.0  2018-11-01 00:01:07        3  \n",
       "2018-11-01 00:02:07        225.73         169.0  2018-11-01 00:02:07        3  \n",
       "2018-11-01 00:03:07        196.61         145.0  2018-11-01 00:03:07        3  \n",
       "2018-11-01 00:04:07        232.02         189.0  2018-11-01 00:04:07        3  "
      ]
     },
     "execution_count": 67,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 加一列，代表周几。\n",
    "df['weekday'] = df.index.weekday\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sun</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>created_at</th>\n",
       "      <th>weekday</th>\n",
       "      <th>weekend</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>created_at</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:00:07</th>\n",
       "      <td>2019162542</td>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>2018-11-01 00:00:07</td>\n",
       "      <td>3</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:01:07</th>\n",
       "      <td>162644</td>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>2018-11-01 00:01:07</td>\n",
       "      <td>3</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:02:07</th>\n",
       "      <td>162742</td>\n",
       "      <td>5</td>\n",
       "      <td>845.84</td>\n",
       "      <td>136.31</td>\n",
       "      <td>225.73</td>\n",
       "      <td>169.0</td>\n",
       "      <td>2018-11-01 00:02:07</td>\n",
       "      <td>3</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:03:07</th>\n",
       "      <td>162808</td>\n",
       "      <td>9</td>\n",
       "      <td>1305.52</td>\n",
       "      <td>90.12</td>\n",
       "      <td>196.61</td>\n",
       "      <td>145.0</td>\n",
       "      <td>2018-11-01 00:03:07</td>\n",
       "      <td>3</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:04:07</th>\n",
       "      <td>162943</td>\n",
       "      <td>3</td>\n",
       "      <td>568.89</td>\n",
       "      <td>138.45</td>\n",
       "      <td>232.02</td>\n",
       "      <td>189.0</td>\n",
       "      <td>2018-11-01 00:04:07</td>\n",
       "      <td>3</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                             id  count  res_time_sun  res_time_min  \\\n",
       "created_at                                                           \n",
       "2018-11-01 00:00:07  2019162542      8       1057.31         88.75   \n",
       "2018-11-01 00:01:07      162644      5        749.12        103.79   \n",
       "2018-11-01 00:02:07      162742      5        845.84        136.31   \n",
       "2018-11-01 00:03:07      162808      9       1305.52         90.12   \n",
       "2018-11-01 00:04:07      162943      3        568.89        138.45   \n",
       "\n",
       "                     res_time_max  res_time_avg           created_at  weekday  \\\n",
       "created_at                                                                      \n",
       "2018-11-01 00:00:07        177.72         132.0  2018-11-01 00:00:07        3   \n",
       "2018-11-01 00:01:07        240.38         149.0  2018-11-01 00:01:07        3   \n",
       "2018-11-01 00:02:07        225.73         169.0  2018-11-01 00:02:07        3   \n",
       "2018-11-01 00:03:07        196.61         145.0  2018-11-01 00:03:07        3   \n",
       "2018-11-01 00:04:07        232.02         189.0  2018-11-01 00:04:07        3   \n",
       "\n",
       "                     weekend  \n",
       "created_at                    \n",
       "2018-11-01 00:00:07    False  \n",
       "2018-11-01 00:01:07    False  \n",
       "2018-11-01 00:02:07    False  \n",
       "2018-11-01 00:03:07    False  \n",
       "2018-11-01 00:04:07    False  "
      ]
     },
     "execution_count": 68,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['weekend'] = df['weekday'].isin({5,6})\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 对weekend分组，对count列求平均值。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "weekend\n",
       "False    7.016846\n",
       "True     7.574989\n",
       "Name: count, dtype: float64"
      ]
     },
     "execution_count": 70,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.groupby('weekend')['count'].mean()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "weekend  created_at\n",
       "False    0              3.239120\n",
       "         1              1.668388\n",
       "         2              1.162551\n",
       "         3              1.086705\n",
       "         4              1.155556\n",
       "         5              1.136364\n",
       "         6              1.000000\n",
       "         7              1.000000\n",
       "         8              1.000000\n",
       "         9              1.080000\n",
       "         10             1.239011\n",
       "         11             2.031690\n",
       "         12             4.195845\n",
       "         13             6.668042\n",
       "         14             8.260503\n",
       "         15             8.934448\n",
       "         16             8.466504\n",
       "         17             6.784996\n",
       "         18             6.717731\n",
       "         19             8.655913\n",
       "         20            10.536496\n",
       "         21            10.846906\n",
       "         22             9.034164\n",
       "         23             5.946834\n",
       "True     0              3.467782\n",
       "         1              1.741849\n",
       "         2              1.161826\n",
       "         3              1.050000\n",
       "         4              1.076923\n",
       "         5              1.333333\n",
       "         6              1.000000\n",
       "         7              1.000000\n",
       "         8              1.071429\n",
       "         9              1.144928\n",
       "         10             1.254111\n",
       "         11             1.992958\n",
       "         12             4.031889\n",
       "         13             6.905772\n",
       "         14             8.851321\n",
       "         15             9.858422\n",
       "         16             9.420550\n",
       "         17             7.334743\n",
       "         18             7.342150\n",
       "         19             9.270430\n",
       "         20            11.173609\n",
       "         21            11.695043\n",
       "         22            10.419916\n",
       "         23             7.025452\n",
       "Name: count, dtype: float64"
      ]
     },
     "execution_count": 71,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 得出周末访问次数比非周末，高了0.5.\n",
    "# 周末那个时段调用次数高。\n",
    "df.groupby(['weekend',df.index.hour])['count'].mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 周末和非周末具体的时间对比，绘制成图形，否则不直观。\n",
    "df.groupby(['weekend',df.index.hour])['count'].mean().plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>weekend</th>\n",
       "      <th>False</th>\n",
       "      <th>True</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>created_at</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>3.239120</td>\n",
       "      <td>3.467782</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1.668388</td>\n",
       "      <td>1.741849</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1.162551</td>\n",
       "      <td>1.161826</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1.086705</td>\n",
       "      <td>1.050000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1.155556</td>\n",
       "      <td>1.076923</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>1.136364</td>\n",
       "      <td>1.333333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.071429</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>1.080000</td>\n",
       "      <td>1.144928</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>1.239011</td>\n",
       "      <td>1.254111</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>2.031690</td>\n",
       "      <td>1.992958</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>4.195845</td>\n",
       "      <td>4.031889</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>6.668042</td>\n",
       "      <td>6.905772</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>8.260503</td>\n",
       "      <td>8.851321</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>8.934448</td>\n",
       "      <td>9.858422</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>8.466504</td>\n",
       "      <td>9.420550</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>6.784996</td>\n",
       "      <td>7.334743</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>6.717731</td>\n",
       "      <td>7.342150</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>8.655913</td>\n",
       "      <td>9.270430</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>10.536496</td>\n",
       "      <td>11.173609</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>10.846906</td>\n",
       "      <td>11.695043</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>9.034164</td>\n",
       "      <td>10.419916</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>5.946834</td>\n",
       "      <td>7.025452</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "weekend         False      True \n",
       "created_at                      \n",
       "0            3.239120   3.467782\n",
       "1            1.668388   1.741849\n",
       "2            1.162551   1.161826\n",
       "3            1.086705   1.050000\n",
       "4            1.155556   1.076923\n",
       "5            1.136364   1.333333\n",
       "6            1.000000   1.000000\n",
       "7            1.000000   1.000000\n",
       "8            1.000000   1.071429\n",
       "9            1.080000   1.144928\n",
       "10           1.239011   1.254111\n",
       "11           2.031690   1.992958\n",
       "12           4.195845   4.031889\n",
       "13           6.668042   6.905772\n",
       "14           8.260503   8.851321\n",
       "15           8.934448   9.858422\n",
       "16           8.466504   9.420550\n",
       "17           6.784996   7.334743\n",
       "18           6.717731   7.342150\n",
       "19           8.655913   9.270430\n",
       "20          10.536496  11.173609\n",
       "21          10.846906  11.695043\n",
       "22           9.034164  10.419916\n",
       "23           5.946834   7.025452"
      ]
     },
     "execution_count": 74,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 周末和非周末数据叠加\n",
    "df.groupby(['weekend',df.index.hour])['count'].mean().unstack(level = 0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df.groupby(['weekend',df.index.hour])['count'].mean().unstack(level = 0).plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
